The Internet enables a user of a client computer system to identify and communicate with millions of other computer systems located around the world. A client computer system can identify each of these other computer systems using a unique numeric identifier for that computer called an “IP address.” When a communication is sent from a client computer system to a destination computer system, the client computer system typically specifies the IP address of the destination computer system in order to facilitate the routing of the communication to the destination computer system. For example, when a request for a World Wide Web page (“Web page”) is sent from a client computer system to a Web server computer system (“Web server”) from which that Web page can be obtained, the client computer system typically includes the IP address of the Web server.
To make the identification of destination computer systems more easily usable by humans, a Domain Name System (DNS) has been developed that translates a unique alphanumeric name for a destination computer system into the IP address for that computer. The alphanumeric name is called a “domain name.” For example, the domain name for a hypothetical computer system operated by Example Corporation may be “website.example.com”. Using domain names, a user attempting to communicate with this computer system could specify a destination of “website.example.com” rather than the particular IP address of the computer system (e.g., 198.81.209.25).
The domain names in the DNS are structured in a hierarchical, distributed database that facilitates grouping related domain names and computers and ensuring the uniqueness of different domain names. In particular, as mentioned above, a particular domain name such as “example.com” may identify a specific host computer. However, the hierarchical nature of the DNS also allows a domain name such as “example.com” to represent a domain including multiple other domain names each identifying computers (also referred to as “hosts”), either in addition to or instead of identifying a specific computer.
New domain names can be defined (or “registered”) by various domain name registrars. In particular, a company that serves as a registrar for a top-level domain (TLD) such as .com, .net. .us, and the like, can assist customers in registering new domain names for that TLD and can perform the necessary actions so that the technical DNS information for those domain names is stored in a manner accessible to name servers for that TLD. Registrars often maintain a second-level domain name within the TLD, and provide an interactive website at their domain name from which customers can register new domain names. A registrar will typically charge a customer a fee for registering a new domain name.
For the .com, .net, and .org TLDs, a large number of registrars currently exist, and a single shared registry (“the Registry”) under the control of a third-party administrator stores information identifying the authoritative name servers for the second-level domain names in those TLDs. Other TLDs may have only a single registrar, and if so that registrar may maintain a registry for all the second-level domains in that TLD by merely storing the appropriate DNS information for each domain name that the registrar registers. In other situations, multiple registrars may exist for a TLD, but one of the registrars may serve as a primary registrar that maintains a registry for each of the second-level domains in that TLD. If so, the secondary or affiliate registrars for that TLD supplies the appropriate DNS information for the domain names that they register to the primary registrar. Thus, the manner in which the DNS information for a TLD is obtained and stored is affected by the registrars for that TLD.
Users of the aforementioned DNS generally do not communicate directly with a Root DNS Server. Instead, resolution typically takes place transparently in applications programs such as web browser and other Internet applications at the local computer level. When an application requires a domain name lookup, such programs send a resolution request to the DNS resolver in the local operating system, which in turn handles the communications required.
The DNS resolver often has a cache containing recent lookups. If the cache can provide the answer to the request, the resolver will return the value in the cache to the program making the request. If the cache does not contain the answer (or the information has expired), the resolver will typically send the request through a series of network devices to one or more designated DNS servers. In the case of most home users, the Internet Service Provider (ISP) to which the machine connects will supply this DNS server. In any event, the name server thus queried will follow the process outlined above until it successfully finds a result or determines that none is available. It then returns any results to the DNS resolver, the resolver caches the result for future use and passes the result back to the software which initiated the request.
In the case of a domain that is not registered, a corresponding domain resolution request will need to traverse to the level of an Authoritative Root DNS Server. The Root DNS Server will reply with an authoritative response of a “non-existent domain”. Requests to resolve such non-existent domains are retained in an external repository. NXDomains (or NXD) is a term used for the Internet domain name that is unable to be resolved using the DNS implementation owing either to the domain name not yet being registered or a server problem. The reference to the NXDOMAIN is published in RFC 1035 (Domain names—implementation and specification) and also in RFC 2308, both of which are incorporated herein by reference in their entireties.
For domains that are registered, a domain resolution request handled by an authoritative DNS Server results in a YXDOMAIN (YXD) response. The YXD response is defined in RFC 2136, which is incorporated by reference in its entirety.
Further information regarding the DNS, including tracking and use of NXD responses and similar aspects of the DNS, is provided in U.S. application Ser. No. 12/609,831, filed Oct. 30, 2009, U.S. application Ser. No. 12/859,810, filed Aug. 20, 2010, and U.S. application Ser. No. 12/859,820, filed Aug. 20, 2010, the disclosure of each of which is incorporated by reference in its entirety.